很多演算法對數據範圍非常的敏感。因此為了要讓模型訓練的更強大,通常的做法是對特徵進行調節,使得數據更適合這些演算法。一般來說,我們在做機器學習時往往會做特徵的縮放。
很推薦這篇文章講關於特徵工程: https://www.itread01.com/content/1542164169.html
將所有特徵標準化,也就是高斯分佈。使得數據的平均值為0,方差為1。
適合的使用時機於當有些特徵的方差過大時,使用標準化能夠有效地讓模型快速收斂。
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler().fit(X)
X_scaled = scaler.transform(X)
在MinMaxScaler中是給定了一個明確的最大值與最小值。每個特徵中的最小值變成了0,最大值變成了1。數據會縮放到到[0,1]之間。
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1)).fit(X)
X_scaled = scaler.transform(X)
MaxAbsScaler 與 MinMaxScaler 類似,所有數據都會除以該列絕對值後的最大值。
數據會縮放到到[-1,1]之間。
from sklearn.preprocessing import MaxAbsScaler
scaler = MaxAbsScaler().fit(X)
X_scaled = scaler.transform(X)
可以有效的縮放帶有outlier的數據,透過Robust如果數據中含有異常值在縮放中會捨去。
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler().fit(X)
X_scaled = scaler.transform(X)
本系列教學簡報 PDF & Code 都可以從我的 GitHub 取得!
文章同時發表於: https://andy6804tw.github.io/crazyai-ml/4.咱們一起做資料清理和前處理
如果你對機器學習和人工智慧(AI)技術感興趣,歡迎參考我的線上免費電子書《經典機器學習》。這本書涵蓋了許多實用的機器學習方法和技術,適合任何對這個領域有興趣的讀者。點擊下方連結即可獲取最新內容,讓我們一起深入了解AI的世界!
👉 全民瘋AI系列 [經典機器學習] 線上免費電子書
👉 其它全民瘋AI系列 這是一個入口,匯集了許多不同主題的AI免費電子書